/*
 * @Author: your name
 * @Date: 2020-10-23 16:11:41
 * @LastEditTime: 2020-10-26 10:29:09
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \flv.js-master\src\io\range-seek-handler.js
 */
// range-seek-handler.js-RangeSeekHandler类-range法查找处理器
// 默认搜索处理函数。
class RangeSeekHandler {
    constructor(zeroStart) {
        // 属性：_zeroStart，搜索范围是否从 0 开始
        this._zeroStart = zeroStart || false;
    }
    // 方法：getConfig 获取搜索配置，传入 url 和 range 参数
    getConfig(url, range) {
        // 新建一个 headers 对象，初始化为 {}
        let headers = {};
        // 如果 range 的起点不为 0 或者终点不为 -1
        if (range.from !== 0 || range.to !== -1) {
            let param;
            // 如果 range 的终点不为 -1，headers['Range'] 为 range 的起点到 range 的终点
            if (range.to !== -1) {
                param = `bytes=${range.from.toString()}-${range.to.toString()}`;
            // 否则，headers['Range'] 只考虑 range 的起点
            } else {
                param = `bytes=${range.from.toString()}-`;
            }
            headers['Range'] = param;
        // 如果搜索范围需要从 0 开始，headers['Range'] 考虑起点为 0
        } else if (this._zeroStart) {
            headers['Range'] = 'bytes=0-';
        }
        // 返回一个对象，键分别为 url 和 headers
        return {
            url: url,
            headers: headers
        };
    }
    // 删除URL参数
    removeURLParameters(seekedURL) {
        return seekedURL;
    }
}

export default RangeSeekHandler;